﻿/*************************************************************************************

- CLR版本：        4.0.30319.42000
- 类 名 称：       TB_Point
- 机器名称：       YTE
- 命名空间：       LD.Dal.Entity
- 文 件 名：       TB_Point
- 创建时间：       2022/6/17 15:03:24
- 作    者：       YTE
- 说   明：
- 修改时间：
- 修 改 人：
  *************************************************************************************/

using LD.Host;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LD.BC
{
    public class TB_Point
    {
        public string Name { get; set; }
        public int Sort { get; set; }
        /// <summary>
        /// 运动类型：0:点对点，1: 插补
        /// </summary>
        public int MoveType { get; set; }
        /// <summary>
        /// key:AxisType,values: axisId,point
        /// </summary>
        public Dictionary<string, TB_Point_Axis> AxisPointDic { get; set; } = new Dictionary<string, TB_Point_Axis>();

        public override string ToString()
        {
            string result = string.Empty;
            foreach (var item in AxisPointDic)
            {
                result += $"{item.Key}:[{item.Value.AxisName}:{item.Value.Point}" + "],";
            }
            if (!string.IsNullOrEmpty(result))
                result = result.Remove(result.Length - 1, 1);
            return result;
        }
        public void Move(bool isWait)
        {
            if (BCAlertHelper.GetErrorQty) return;
            foreach (var item in AxisPointDic)
            {
                BcFactory.Instance.Control.Move_Location(item.Value.AxisId, item.Value.Point);
            }
            Task.Delay(100).Wait();
            if (isWait)
            {
                foreach (var item in AxisPointDic)
                {
                    BcFactory.Instance.Control.WaitAxisComplete(item.Value.AxisId);
                }
            }
        }
    }
    public class TB_Point_Axis
    {
        public ushort AxisId { get; set; }
        public string AxisName { get; set; }
        public double Point { get; set; }
    }
}
